package com.example.cloud.service.basic.info;

import com.example.cloud.model.basic.ServiceProject;
import com.example.cloud.model.business.reservation.Patient;
import com.example.cloud.model.dto.PayInfo;
import com.example.cloud.model.dto.Result;
import com.example.cloud.model.finance.ChargeDetails;
import com.example.cloud.model.finance.ConsumeDiscount;
import com.example.cloud.model.finance.DeductRecord;
import com.example.cloud.model.finance.GiftRecord;
import com.example.cloud.model.finance.PaymentDetails;
import com.example.cloud.model.finance.RechargeRecord;
import com.example.cloud.model.finance.WaitPayment;
import com.example.cloud.model.member.Member;

import java.util.List;
import java.util.Map;

/**
 * Created by wangtao on 2018/6/6.
 */
public interface MemberService {
    Member findOne(Long id);
    Member findByPatientId(Long patientId);
    Member findByPhone(String phone);
    List<Member> findMember(String searchValue);
    Result openAccount(Patient patient);
    Result doRecharge(RechargeRecord record);
    Result doGift(GiftRecord record);
    Result doPayment(List<ChargeDetails> details, List<ConsumeDiscount> discounts, PayInfo payInfo, PaymentDetails paymentDetails, List<Long> serviceIds);
    Result doDeduct(List<DeductRecord> records);
    void doAddService(List<ServiceProject> records, Long patientId, Long memberId);
    Result doMake(List<WaitPayment> records, PayInfo payInfo, PaymentDetails paymentDetails);
    Result doCreateHistory(Map map);
    void doSave(Member member);
}
